#include <my_header.h>
// 读端
/* Usage: ./5_receive_read */
int main(int argc, char *argv[]){                                  
    int pipe_fd = open("shared.pipe", O_RDONLY);
    ERROR_CHECK(pipe_fd, -1, "open read");

    // 读取文件名的长度，再根据文件名长度读取文件名
    int name_length = 0;
    read(pipe_fd, &name_length, sizeof(int));
    char file_name[60] = {0};
    read(pipe_fd, file_name, name_length);

    // 读取文件长度
    int file_length = 0;
    read(pipe_fd, &file_length, sizeof(int));

    // 读取文件内容长度。再根据文件内容长度读取文件内容
    int str_length = 0;
    read(pipe_fd, &str_length, sizeof(int));
    char str_buf[60] = {0};
    read(pipe_fd, str_buf, str_length);

    // 创建目录 并切换到当前目录
    mkdir("files", 0777);
    chdir("files");

    // 打开文件 没有则创建
    int new_fd=  open(file_name, O_RDWR | O_CREAT,
               0666);
    // 修改文件大小
    ftruncate(new_fd, file_length);
    // 向文件写入内容
    write(new_fd, str_buf, str_length);

    close(pipe_fd);
    close(new_fd);
    return 0;
}


